package net.huashitong.ssydt.provider.exam.mapper;


import net.huashitong.ssydt.exam.entity.SsExamQuestion;
import net.huashitong.ssydt.exam.entity.vo.ExamQuestionQueryInVO;
import net.huashitong.ssydt.exam.entity.vo.QuestionCountVO;
import net.huashitong.ssydt.exam.entity.vo.QuestionNotTestVO;
import net.huashitong.ssydt.provider.exam.dto.PaperProduceDTO;
import net.huashitong.ssydt.provider.exam.dto.PkLastYearDTO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface SsExamQuestionMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SsExamQuestion record);

    int insertSelective(SsExamQuestion record);

    SsExamQuestion selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SsExamQuestion record);

    int updateByPrimaryKey(SsExamQuestion record);

    /**
     * 列表查询
     *
     * @param examQuestionQueryInVO 查询条件
     * @return 对象列表
     */
    List<SsExamQuestion> paginationQuery(ExamQuestionQueryInVO examQuestionQueryInVO);

    /**
     * 分页查询记录总数统计
     *
     * @param examQuestionQueryInVO 查询条件
     * @return 总记录数
     */
    int paginationCount(ExamQuestionQueryInVO examQuestionQueryInVO);

    /**
     * 统计国内的题目数
     *
     * @param questionCountVO
     * @return
     */
    int countByDomestic(QuestionCountVO questionCountVO);

    /**
     * 统计国内+本省的题目数
     *
     * @param questionCountVO
     * @return
     */
    int countByDomesticAndTheProvince(QuestionCountVO questionCountVO);

    /**
     * 统计国内+国际的题目数
     *
     * @param questionCountVO
     * @return
     */
    int countByDomesticAndInternational(QuestionCountVO questionCountVO);

    /**
     * 统计国内+国际+本省的题目数
     *
     * @param questionCountVO
     * @return
     */
    int countByDomesticAndInternationalAndTheProvince(QuestionCountVO questionCountVO);

    /**
     * 获取国内的题目（计划未出现题）
     *
     * @param questionNotTestVO
     * @return
     */
    List<SsExamQuestion> queryByDomesticWithNotTest(QuestionNotTestVO questionNotTestVO);

    /**
     * 获取国内+本省的题目（计划未出现题）
     *
     * @param questionNotTestVO
     * @return
     */
    List<SsExamQuestion> queryByDomesticAndTheProvinceWithNotTest(QuestionNotTestVO questionNotTestVO);

    /**
     * 获取国内+国际的题目（计划未出现题）
     *
     * @param questionNotTestVO
     * @return
     */
    List<SsExamQuestion> queryByDomesticAndInternationalWithNotTest(QuestionNotTestVO questionNotTestVO);

    /**
     * 获取国内+国际+本省的题目（计划未出现题）
     *
     * @param questionNotTestVO
     * @return
     */
    List<SsExamQuestion> queryByDomesticAndInternationalAndTheProvinceWithNotTest(QuestionNotTestVO questionNotTestVO);

    List<SsExamQuestion> queryByAreaWithAreaTypesWithTopics(PaperProduceDTO dto);

    /**
     * 根据所属日期（月份，或者日期）模糊搜索
     *
     * @param belongDate
     * @return
     */
    List<SsExamQuestion> queryByLikeBelongDate(String belongDate);

    List<SsExamQuestion> queryTenQuestionForLastYearByQuestionIdNotIn(PkLastYearDTO dto);

    List<SsExamQuestion> findFiveQuestionByNowDate(String dateStr);
}